﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace VX.DBTransfer.Framework
{
    public enum DataType
    {
        Bit, TinyInt, SmallInt, Int, BigInt, Real, Float, Money, NVarChar, NText, DateTime, Binary,
        //在SQLServer时等同于NVARCHAR(4000)，但在Oracle，表示该参数值为SQL语句，需要TSQLParser解析
        SQLStatement,
        //专用于Oracle中从存储过程中返回记录集的参数
        OracleCursor
    }

    //数据库引擎定义
    public enum enmDBDriver : byte
    {
        SQLServer,
        Oracle
    }
    public enum FieldType
    {
        NVarChar = 0,
        DateTime = 1,
        Int = 2,
        Boolean = 3,
        NText = 4,
        Float = 5,
        TextInfo = 6,
        File = 7
        //DateTime = 7,
        //TimeOnly = 8
    }
    /// <summary>
    /// 邮件状态
    /// </summary>
    public enum EmailStatus
    {
        WAITING,    //等待发生
        RUNNING,    //发送中
        ERROR,      //发送失败
        SUCCESS     //发送成功
    }
    /// <summary>
    /// 学习方案状态
    /// </summary>
    public enum ProjectStatus
    {
        DraftBox,       //未启动
        Running,        //启动
        Completed       //结束
    }

    /// <summary>
    /// 学习项目、学习行动计划状态
    /// </summary>
    public enum ProjectItemStatus
    {
        DraftBox,                  //未填写
        DraftBoxExpired,           //未填写-已过期
        ApproveSave,               //需要审核：未审核
        ApproveRunning,            //需要审核：审核中
        ApproveCompleted,          //需要审核：已审核
        ApproveSaveExpired,        //需要审核：未审核-已过期
        ApproveRunningExpired,     //需要审核：审核中-已过期
        Save,                      //已填写（没有到达限定完成日期）
        Completed                  //已填写 (已经到达限定完成日期)
    }

    /// <summary>
    /// 学习行动计划跟踪状态
    /// </summary>
    public enum ProjectTrackStatus
    {
        DraftBox,               //未跟进
        DraftBoxExpired,        //未跟进-已过期
        ApproveSave,            //需要审核：未反馈
        ApproveCompleted,       //需要审核：已反馈
        ApproveSaveExpired,     //需要审核：未反馈-已过期 
        Completed               //已跟进 
    }

    /// <summary>
    /// 学习行动计划邮件分组
    /// </summary>
    public enum ProjectGroupStatus
    {
        ReadyRemind,           //准备提醒
        PlanRemind,            //计划提醒
        TrackRemind            //跟进提醒
    }
}
